package usuario;

import java.text.ParseException;
import java.util.ArrayList;
import java.util.Collection;

import org.uqbar.commons.utils.Observable;

import vuelo.Vuelo;
import busqueda.Busqueda;
import aerolinea.TodasLasAerolineas;
import asiento.Asiento;

@Observable
public class Usuario {
	
	private TipoUsuario tipoUsuario;
	private Collection<Busqueda> historial;
	private String dni;
	private String nombre;
	private Collection<Asiento> compras;
	private Collection<Asiento> reservas;
	
	 public Collection<Vuelo> buscarVuelos(TodasLasAerolineas aerolineas, Busqueda busqueda) throws ParseException{
			this.agregarBusquedaAlHistorial(busqueda);		
			Collection<Vuelo> vuelos = new ArrayList<Vuelo>();
			vuelos.addAll(aerolineas.buscarVuelos(busqueda));
			return vuelos;
		 }
	
	public void agregarBusquedaAlHistorial(Busqueda busqueda) {
			this.setHistorial(busqueda);	
		}

	public void agregarCompraAlHistorial(Asiento asiento) {
		this.getCompras().add(asiento);
	}
	public void agregarReservaAlHistorial(Asiento asiento) {
		this.getReservas().add(asiento);
	}
	public void setHistorial(Busqueda busqueda) {
		this.historial.add(busqueda);
	}

	public Collection<Busqueda> getHistorial() {
		return historial;
	}
	
	public void setTipoUsuario(TipoUsuario tipoUsuario) {
		this.tipoUsuario = tipoUsuario;
	}

	public TipoUsuario getTipoUsuario() {
		return tipoUsuario;
	}

	public String getDni() {
		return dni;
	}

	public void setDni(String dni) {
		this.dni = dni;
	}
	
	public String toString(){
		return this.getNombre();
		
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public String getNombre() {
		return nombre;
	}

	public void setCompras(Collection<Asiento> compras) {
		this.compras = compras;
	}

	public Collection<Asiento> getCompras() {
		return compras;
	}

	public void setReservas(Collection<Asiento> reservas) {
		this.reservas = reservas;
	}

	public Collection<Asiento> getReservas() {
		return reservas;
	}

}
